package com.divemotor.ventarepuestosinternet.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;



@Entity
@Table(schema="SISTEMAS",name="SIS_MAE_OPCION")
public class Opcion implements Serializable {
	
	public Opcion(Integer idOpcion,Opcion opcionPadre,Sistema sistema, String nombre, String url, 
			 String esPadre) {
		super();
		this.idOpcion = idOpcion;
		this.nombre = nombre;
		this.url = url;
		this.sistema = sistema;
		this.opcionPadre = opcionPadre;
		this.esPadre = esPadre;
	}
	public Opcion(Integer idOpcion){
		this.idOpcion=idOpcion;
	}
	public Opcion() {
		super();
		// TODO Auto-generated constructor stub
	}
	

	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="COD_ID_OPCION")
	private Integer idOpcion;

	@Column(name="DES_NOMBRE" ,length=50)
	private String nombre;
	
	@Column(name="txt_URL", length=50)
	private String url;

	@ManyToOne
	@JoinColumn(name="COD_ID_SISTEMA")
	private Sistema sistema;
	
	@ManyToOne
	@JoinColumn(name="COD_ID_OPCION_PADRE")
	private Opcion opcionPadre;
	
	@Column(length=1, name="IND_ES_PADRE")
	private String esPadre;

	@ManyToMany(cascade = CascadeType.ALL, mappedBy = "listaOpciones")
	private List<Perfil> listaPerfiles;
	
	
	
	public Integer getIdOpcion() {
		return idOpcion;
	}
	public void setIdOpcion(Integer idOpcion) {
		this.idOpcion = idOpcion;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Sistema getSistema() {
		return sistema;
	}

	public void setSistema(Sistema sistema) {
		this.sistema = sistema;
	}


	public Opcion getOpcionPadre() {
		return opcionPadre;
	}

	public void setOpcionPadre(Opcion opcionPadre) {
		this.opcionPadre = opcionPadre;
	}

	public String getEsPadre() {
		return esPadre;
	}

	public void setEsPadre(String esPadre) {
		this.esPadre = esPadre;
	}

	public List<Perfil> getListaPerfiles() {
		return listaPerfiles;
	}

	public void setListaPerfiles(List<Perfil> listaPerfiles) {
		this.listaPerfiles = listaPerfiles;
	}	
}